<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//括号去了就是对象了
			//调用call和apply可以将一个对象指定为参数，这个对象将会成为函数执行的this
			/* 
			 以函数形式调用时，this永远是window
			 以方法形式调用，this是调用方法的对象
			 以构造函数的形式调用时，this是新创建的那个对象
			 使用call和apply调用时，this是指定的那个对象*/
			function fun(a,b)
			{
				
				alert(this.name);   
			}
			function fun1(a,b)
			{
				console.log("a="+a);
				console.log("b="+b);
				alert(this.name);   
			}
			var obj={name:"obj",
			sayname:function()
			{
				alert(this.name);
			}
			};
			var obj2={name:"obj2"};
			fun();  //Window
			fun.call(obj);
			fun.apply(obj);
			obj.sayname.apply(obj2);
			fun1.call(obj,22,30);  //call可以直接传参，apply需要将实参封装到一个数组
			fun.apply(obj,[22,33]);
		</script>
	</head>
	<body>
	</body>
</html>